<!--SIF Implementation Specification 2.2-6 (March 17, 2008)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.sifinfo.org/infrastructure/2.x" xmlns:sif="http://www.sifinfo.org/infrastructure/2.x" elementFormDefault="qualified">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="imports/xml/xml.xsd" />
  <xs:complexType name="AssignmentType">
    <xs:annotation>
      <xs:documentation>
							The work assigned to a student, which can comprise of learning resources, activities, and assessments. It must have
							a student and a time attached to it.
						</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Students">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="StudentPersonalRefId" maxOccurs="unbounded" type="sif:IdRefType">
              <xs:annotation>
                <xs:documentation>GUID assigned to the student.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StaffPersonalRefId" minOccurs="0" nillable="true" type="sif:IdRefType">
        <xs:annotation>
          <xs:documentation>GUID assigned to the educator who gave the assignment.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TechnicalRequirements" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="TechnicalRequirement" minOccurs="0" maxOccurs="unbounded" type="xs:string">
              <xs:annotation>
                <xs:documentation>Applications, OS, or network requirement for activity.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="EssentialMaterials" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="EssentialMaterial" minOccurs="0" maxOccurs="unbounded" type="xs:string">
              <xs:annotation>
                <xs:documentation>Essential material required to engage in the assignment.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Title" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Descriptive name of the assignment.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Preamble" minOccurs="0" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Description and context for the assignment.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LearningObjectives" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningObjective" minOccurs="0" maxOccurs="unbounded" type="xs:string">
              <xs:annotation>
                <xs:documentation>Description of an educational objective of the assignment.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LearningStandards" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningStandardItemRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType">
              <xs:annotation>
                <xs:documentation>Link from assignment to an associated LearningStandardItem object.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Prerequisites" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Prerequisite" minOccurs="0" maxOccurs="unbounded" type="xs:string">
              <xs:annotation>
                <xs:documentation>Skill or competency the student must have to engage in assignment.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SourceObjects" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SourceObject" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:annotation>
                  <xs:documentation>GUID assigned to the source object. The source object is the "thing" being assigned to a student.</xs:documentation>
                </xs:annotation>
                <xs:simpleContent>
                  <xs:extension base="sif:IdRefType">
                    <xs:attribute name="SIF_RefObject" use="required">
                      <xs:annotation>
                        <xs:documentation>The type of learning object the source object is. </xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="Assessment" />
                          <xs:enumeration value="LearningResource" />
                          <xs:enumeration value="Activity" />
                          <xs:enumeration value="Lesson" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="AssignmentTime">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CreationDate" minOccurs="0" nillable="true" type="xs:date">
              <xs:annotation>
                <xs:documentation>Creation date of the assignment</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Duration" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Time required to complete the assignment.</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:decimal">
                    <xs:attribute name="Units" use="required">
                      <xs:annotation>
                        <xs:documentation>
							Unit of time of the Duration value.
						</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="week" />
                          <xs:enumeration value="day" />
                          <xs:enumeration value="hour" />
                          <xs:enumeration value="minute" />
                          <xs:enumeration value="second" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
            <xs:element name="StartDate" type="xs:date">
              <xs:annotation>
                <xs:documentation>Date assignment is started.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="StartTime" minOccurs="0" nillable="true" type="xs:time">
              <xs:annotation>
                <xs:documentation>Time assignment is started.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="DueDate" type="xs:date">
              <xs:annotation>
                <xs:documentation>Date assignment is due.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="DueTime" minOccurs="0" nillable="true" type="xs:time">
              <xs:annotation>
                <xs:documentation>Time assignment is due.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="AdministrationDate" minOccurs="0" nillable="true" type="xs:date">
              <xs:annotation>
                <xs:documentation>Date that the assignment was administered to student if an assessment.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="MaxAttemptsAllowed" minOccurs="0" nillable="true" type="xs:unsignedInt">
        <xs:annotation>
          <xs:documentation>The number attempts a student may make on this assignment. Assumed to be unlimited if omitted.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AddToGradeBookFlag" minOccurs="0" nillable="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Flag to prompt grade book processing.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>GUID assigned to assignment.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute ref="xml:lang" use="required" />
  </xs:complexType>

  <xs:element name="Assignment" type="sif:AssignmentType" />

</xs:schema>